﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using estudent.Models;

namespace estudent.Controllers
{
    public class SeznamController : Controller
    {
        estudentEnt db = null;
        IEnumerable<sPredmeti> izbirniPredmeti = null;
        IEnumerable<int> leta = null;

        public SeznamController()
        {
            db = new estudentEnt();
            izbirniPredmeti = from p in db.sPredmetis
                              where p.strokovnoIzbirni == true || p.prostoIzbirni == true
                              orderby p.imePredmeta
                              select p;
            leta = from v in db.Vpisis
                          orderby v.letoVpisa
                         select v.letoVpisa.Year;
        }

        //
        // GET: /Seznam/

        public ActionResult Index()
        {
            
            string role = Session["Role"].ToString();
            
            if (role.CompareTo("prof") == 0)
            {
                decimal idProf = Decimal.Parse(Session["Name"].ToString());

                IEnumerable<Poucuje> predmeti1 = db.Poucujes.Where(p => p.sProfesor1==idProf || p.sProfesor2==idProf || p.sProfesor3==idProf).Select(g => g);
                IEnumerable<sPredmeti> predmeti = from p in db.sPredmetis
                                                  join p1 in predmeti1 on p.sPredmeta equals p1.sPredmeta
                                                  select p;
                ViewData["izbPred"] = predmeti;
            }
            else
            {
                ViewData["izbPred"] = izbirniPredmeti;
            }
            
            ViewData["letaVpisov"] = leta.Distinct();

            return View("Seznam");
        }

        //POST: /Seznam/Poisci
        public string Poisci(FormCollection form)
        {
            decimal imePred=Decimal.Parse(form["imeIzbirnegaPredmeta"]);
            DateTime solskoLeto = new DateTime(Convert.ToInt32(form["solskoLeto"]),10,1);
            DateTime solskoLeto2 = new DateTime(Convert.ToInt32(form["solskoLeto2"]), 10, 1);

            sPredmeti pred = db.sPredmetis.First(p=>p.sPredmeta == imePred);
            IEnumerable<Vpisi> odPredVpisi = pred.Vpisis;

            IEnumerable<Vpisi> studenti = (from v in odPredVpisi
                           where v.letoVpisa>=solskoLeto && v.letoVpisa<=solskoLeto2
                           orderby v.letoVpisa descending
                           orderby v.Studenti.ime
                           orderby v.Studenti.priimek
                           select v
                           );//.OrderBy(v=>v.Studenti.priimek)).ThenBy(v=>v.Studenti.ime).ThenBy(v=>v.letoVpisa);

            string ret = "<tr align='center'><th>Zap. št.</th><th  style='width:125px;'>Vpisna</th><th  style='width:125px;'>Priimek</th><th  style='width:125px;'>Ime</th><th  style='width:125px;'>Vrsta vpisa</th><th  style='width:125px;'>Študijsko leto</th></tr>";
            int h=1;
            string lastUsername = "";
            foreach (var student in studenti)
            {
                if (lastUsername.CompareTo(student.username) != 0)
                {
                    ret += "<tr align='center'><td>" + h + ".</td><td style='width:125px;'>" + student.username + "</td><td  style='width:125px;'>" + student.Studenti.priimek + "</td><td  style='width:125px;'>" + student.Studenti.ime + "</td><td  style='width:125px;'>" + ((student.idVrstaVpisa.CompareTo("V1") == 0) ? "&nbsp;" : student.idVrstaVpisa) + "</td><td  style='width:125px;'>" + student.letoVpisa.Year + "/" + (student.letoVpisa.Year + 1) + "</td></tr>";
                }
                h++;
                lastUsername = student.username;
            }
                               

            return ret;
        }

    }
}
